// pages/story-detail/story-detail.js
//使用 async await 语法必须引入，固定写法。
import regeneratorRuntime from '../../utils/runtime'
const App = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    storyInfo:{},//故事详情
    comment:[],//故事相关的评论
    value:""
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    const {id} = options
    //在图片还没加载完成之前显示加载中
    wx.showLoading({
      title: "加载中~" ,
      mask: true,
    })
    this.getStoryDetail(id)
  },
  //获取故事详情
  async getStoryDetail(id) {
    wx.cloud.callFunction({
      name:"getstorydetail",
      data:{id}
    })
    .then(result => {
      const { storyInfo, commentArr } = result.result
      this.setData({storyInfo,comment:commentArr})
    })
  },
  //键盘输入事件
  inputChange(event) {
    const {value} = event.detail
    this.setData({value:value.trim()})
  },
  async seandComment(event) {
    if(!this.data.value.trim()) {
      return
    }
    const {id} = event.currentTarget.dataset
    const commentInfo = {
      content:this.data.value,
      create_time:new Date().getTime(),
      nickname:App.globalData.userInfo.nickname,
      avatarUrl:App.globalData.userInfo.avatarUrl,
      count:0,
      reply_count:0
    }
    await wx.cloud.callFunction({
      name:"sendcomment",
      data:{
        id,
        commentInfo
      }
    })
    wx.showToast({
      title: '发表成功~',
      icon: 'none',
      duration: 1000,
      mask: false,
    })
    //前台更新
    const {storyInfo, comment} = this.data
    storyInfo.reply_count++
    comment.unshift(commentInfo)
    this.setData({storyInfo, comment,value:""})  
  },
  //监听图片加载
  timer:null,
  imageLoad() {
    clearTimeout(this.timer)
    this.timer = 
    setTimeout(_ => {
      //图片加载完成之后关闭Loading
      wx.hideLoading()
    },100)
  },


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})